Cutting Stock Problem minco MINLP AMPL short = 0, <= 1, binary; # = 1, if cutting pattern present var m{J} >= 0, <= M, integer, := 1; # number of repeats of pattern j var n{I,J} >= 0, <= Nmax, integer, := 1; # number of products i produced in cut j minimize cost: sum{j in J} ( c[j]*m[j] + C[j]*y[j] ); subject to max_width{j in J}: sum{i in I} ( b[i]* n[i,j] ) - Bmax <= 0; min_width{j in J}: - sum{i in I} ( b[i]* n[i,j] ) + Bmax - Delta <= 0; max_n_sum{j in J}: sum{i in I} ( n[i,j] ) - Nmax <= 0; cut_exist{j in J}: y[j] - m[j] <= 0; no_cut{j in J}: m[j] - M*y[j] <= 0; min_order{i in I}: nord[i] - sum{j in J} ( m[j] * n[i,j] ) <= 0; ]]> solve; display _varname, _var; # Source: I. Harjunkoski, T. Westerlund, R. P\"{o}rn and H. Skrifvars # "Different transformations for solving non--convex trim loss problems # by MINLP", European Journal of Operational Research 105 (1998) 594-603. # # Nonconvex MINLP arising from # trim loss minimization in the paper industry. The problem is to # produce a set of product paper rolls from raw paper rolls such that # a cost function including the trim loss and the overall production cost # is minimized.